/*
 * TMap Designer - A Thematic Map design software
 * Copyright (C) 2006 World Health Organization
 * http://www.who.int
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
package who.tmap.imp.impl;

import java.util.Map;

import who.tmap.bo.Attrs;
import who.tmap.bo.impl.BizObjectFactory;
import who.tmap.imp.ImportAdapter;
import who.tmap.imp.ImportAdapterException;

public abstract class BaseImportAdapterImpl implements ImportAdapter {

    protected static final int NB_SAMPLE_RECORDS =10;
    protected static final String DEFAULT_FIELD_NAME ="field_";
    protected static final String DEFAULT_FIELD_TYPE =String.class.getName();
       
    private String name;
    protected Map<String, String> config;
    
    protected BizObjectFactory boFactory =null;  
    
    BaseImportAdapterImpl() {
        boFactory =BizObjectFactory.getInstance();        
    }
    
    /**
     * @return Returns the name.
     */
    public String getName() {
        return name;
    }
    /**
     * @param name The name to set.
     */
    protected void setName(String name) {
        this.name = name;
    }
    
    protected abstract Attrs readValues( int nbRec ) throws ImportAdapterException;
    
    /**
     * 
     */
    public Attrs readSampleData() throws ImportAdapterException {
        return readValues( NB_SAMPLE_RECORDS );
    }
    
    public Attrs readValues() throws ImportAdapterException {
        return readValues( -1 );
    }    
    
}
